package com.deco.dao.warpper.brand;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.deco.dao.delegate.brand.IActivityReportDao;
import com.deco.dao.domain.table.ActivityReport;
import com.deco.dao.logic.brand.ActivityReportDao;
import com.deco.domain.vo.brand.ActivityReportVo;
import com.free.common.vo.PageResponseVo;
import com.free.ext.mybatis.model.entity.PageResponseModel;
import com.free.ext.mybatis.warpper.BaseDaoWarpper;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
@Repository
public class ActivityReportDaoWarpper extends BaseDaoWarpper<ActivityReportVo,Long,ActivityReport> implements IActivityReportDao {

    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/
    @Autowired
    private ActivityReportDao activityReportDao;

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/

    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    @Override
    public void registerEnums() {

    }
    
    @Override
    public PageResponseVo<ActivityReportVo> selectByPageNoTitleLike(
			ActivityReportVo conditionVo, String orderBy, Integer pageNo,
			Integer pageSize){
    		ActivityReport tbl = convertToTable(conditionVo);
          PageResponseModel<ActivityReport> pgModel = activityReportDao.selectByPageNoTitleLike(tbl, orderBy, pageNo, pageSize);
          return convertToViewResponseVo(pgModel);
    
    }

	@Override
	public int batchDelete(String[] idArray) {
		
		return activityReportDao.batchDelete(idArray);
	}

    @Override
    public List<String> selectYearList() {
        return activityReportDao.selectYearList();
    }

    @Override
    public List<ActivityReportVo> selectActivityReportByYear(String year) {
        List<ActivityReportVo> res = new ArrayList<>();
        List<ActivityReport> reports = activityReportDao.selectActivityReportByYear(year);
        if (reports == null || reports.size() == 0)
            return null;

        reports.forEach(x -> {
            res.add(convertToView(x));
        });
        return res;
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
